/*
 * Copyright 2011-2017 JacobLee007
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.honeybees.intellij.javadocs.model.settings;

import java.util.Set;

/**
 * The type General settings.
 *
 * @author Sergey Timofiychuk
 */
public class GeneralSettings {

    private Mode mode;
    private Set<Level> levels;
    private Set<Visibility> visibilities;
    private boolean overrideMethods;
    private boolean splitClassName;

    /**
     * Gets javadoc update mode.
     *
     * @return the mode
     */
    public Mode getMode() {
        return mode;
    }

    /**
     * Sets javadoc update mode.
     *
     * @param mode the mode
     */
    public void setMode(Mode mode) {
        this.mode = mode;
    }

    /**
     * Gets javadoc generate levels.
     *
     * @return the levels
     */
    public Set<Level> getLevels() {
        return levels;
    }

    /**
     * Sets javadoc generate levels.
     *
     * @param levels the levels
     */
    public void setLevels(Set<Level> levels) {
        this.levels = levels;
    }

    /**
     * Gets javadoc generate visibilities.
     *
     * @return the visibilities
     */
    public Set<Visibility> getVisibilities() {
        return visibilities;
    }

    /**
     * Sets javadoc generate visibilities.
     *
     * @param visibilities the visibilities
     */
    public void setVisibilities(Set<Visibility> visibilities) {
        this.visibilities = visibilities;
    }

    /**
     * Gets flag that shows whether javadoc should be generated on override methods.
     *
     * @return the flag value
     */
    public boolean isOverrideMethods() {
        return overrideMethods;
    }

    /**
     * Set flag that shows whether javadoc should be generated on override methods.
     *
     * @param overrideMethods the override methods
     */
    public void setOverrideMethods(boolean overrideMethods) {
        this.overrideMethods = overrideMethods;
    }

    /**
     * Is split class name boolean.
     *
     * @return the boolean
     */
    public boolean isSplitClassName() {
        return splitClassName;
    }

    /**
     * Sets split class name.
     *
     * @param splitClassName the split class name
     */
    public void setSplitClassName(boolean splitClassName) {
        this.splitClassName = splitClassName;
    }

}
